﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Simulator
{
    /// <summary>
    /// Элемент, в котором сущности уничтожаются
    /// </summary>
    [Serializable]
    public class Sink: Block
    {
        /// <summary>
        /// Системное время
        /// </summary>
        public double SysTime { get;  set; }

        /// <summary>
        /// Число пришедших к стоку проектов
        /// </summary>
        public int nFinished { get { return Entities.Count; } }

        private List<Entity> entities = new List<Entity>();
        /// <summary>
        /// Список (архив) сущностей, которые попали в этот блок 
        /// </summary>
        public List<Entity> Entities
        {
            get
            {
                return entities;
            }
            set
            {
                entities = value;
            }
        }
        /// <summary>
        /// В этом блоке сущности отправляются в архив this.Entities
        /// </summary>
        /// <param name="e">Сущность</param>
        public override void PutEntity(ref Entity e)
        {
            entities.Add(e);
            e.OwnerBlock = this;
            e.TimeOfExpiration = SysTime;
        }
        public override void ClearEntities()
        {
            entities.Clear();
            SysTime = 0;
        }
    }
}
